.TH SG_STPG "8" "January 2014" "sg3_utils\-1.38" SG3_UTILS
.SH NAME
sg_stpg \- send SCSI SET TARGET PORT GROUPS command
.SH SYNOPSIS
.B sg_stpg
[\fI\-\-active\fR] [\fI\-\-help\fR] [\fI\-\-hex\fR] [\fI\-\-offline\fR]
[\fI\-\-optimized\fR] [\fI\-\-raw\fR] [\fI\-\-standby\fR]
[\fI\-\-state=S,S...\fR] [\fI\-\-tp=P,P...\fR] [\fI\-\-unavailable\fR]
[\fI\-\-verbose\fR] [\fI\-\-version\fR] \fIDEVICE\fR
.SH DESCRIPTION
.\" Add any additional description here
Send a SCSI SET TARGET PORT GROUPS command to \fIDEVICE\fR. This utility
has different modes depending on whether the \fI\-\-tp=\fR option is given.
.PP
If \fI\-\-tp=\fR is given then the SET TARGET PORT GROUPS command parameter
block is built with a descriptor for each element in the list given to
\fI\-\-tp=\fR. The corresponding asymmetric access state value is either
taken from the \fI\-\-state=\fR list or, if that is not given, from one
of the explicit state options (e.g. \fI\-\-unavailable\fR), used repeatedly
if required.
.PP
If \fI\-\-tp=\fR is not given then a sequence of SCSI commands are sent to
the \fIDEVICE\fR leading up to the SET TARGET PORT GROUPS command. First an
INQUIRY is sent to fetch the device identification VPD page to find
the (primary) target port group associated with \fIDEVICE\fR. Then a REPORT
TARGET PORT GROUPS command is issued to find the current state and
whether a transition to the requested state is supported. If so the
SET TARGET PORT GROUPS command is sent.
.PP
Target port group access is described in SPC\-4 found at www.t10.org
in sections 5.8 and 5.16 (in rev 36e dated 2012/8/24). The SET TARGET PORT
GROUPS command is also described in section 6.45 of that document.
.SH OPTIONS
Arguments to long options are mandatory for short options as well.
The options are arranged in alphabetical order based on the long
option name.
.TP
\fB\-a\fR, \fB\-\-active\fR
set active/non\-optimized state.
.TP
\fB\-h\fR, \fB\-\-help\fR
output the usage message then exit.
.TP
\fB\-H\fR, \fB\-\-hex\fR
output response to the REPORT TARGET PORT GROUPS command in hex then exit.
.TP
\fB\-O\fR, \fB\-l\fR, \fB\-\-offline\fR
set offline state. This is the appropriate state to set a target port
to prior to removing the device.  Note that a relative target port identifier
should be given with this state (rather than a target port group identifier
that all other states take).
.TP
\fB\-o\fR, \fB\-\-optimized\fR
set active/optimized state. If no other state options or \fI\-\-tp=\fR
option are given then active/optimized is the default state.
.TP
\fB\-r\fR, \fB\-\-raw\fR
output response to the REPORT TARGET PORT GROUPS command in binary to stdout
then exit.
.TP
\fB\-s\fR, \fB\-\-standby\fR
set standby state. Port group shall accept those commands listed
for "unavailable" state plus LOG SELECT/SENSE, MODE SELECT/SENSE, RECEIVE
DIAGNOSTIC RESULTS, SEND DIAGNOSTIC, PERSISTENT RESERVE IN/OUT commands.
.TP
\fB\-S\fR, \fB\-\-state\fR=\fIS,S...\fR
specifies a comma separated list (one element of more) of states. Either
a number or an abbreviation can be given. A number is assumed to be a
decimal number unless it is prefixed by "0x" or has a trailing "h" in
which case a hexadecimal value is assumed. Only the values 0, 1, 2, 3
or 14 are accepted. The accepted abbreviations are "an", "ao", "o", "s"
or "u"; which represent active/non\-optimized(1), active/optimized(0),
offline(14), standby(2) or unavailable(3) respectively.
.TP
\fB\-t\fR, \fB\-\-tp\fR=\fIP,P...\fR
specifies a comma separated list (one element of more). Each elements is
either a target port group identifier (when the corresponding state is
other than "offline") or a relative target port identifier (when the
corresponding state is "offline"). Each element is assumed to be a
decimal number unless it is prefixed by "0x" or has a trailing "h" in
which case a hexadecimal value is assumed.
.TP
\fB\-u\fR, \fB\-\-unavailable\fR
set unavailable state. Port group shall only accept INQUIRY, REPORT LUNS,
REPORT/SET TARGET PORT GROUPS, REQUEST SENSE and READ/WRITE BUFFER commands.
.TP
\fB\-v\fR, \fB\-\-verbose\fR
increase the level of verbosity, (i.e. debug output).
.TP
\fB\-V\fR, \fB\-\-version\fR
print the version string and then exit.
.SH NOTES
The SET TARGET PORT GROUPS command should be supported whenever the TPGS
value in a standard INQUIRY response is 2 or 3. [View with sg_inq utility.]
.PP
Notice that the offline state is termed as a "secondary target port
asymmetric access state" and takes a relative target port identifier (i.e.
acts on a single target port). All the other states are termed as "primary
target port asymmetric access states" and each takes a target port group
identifier (i.e. acts on one or more target ports).
.PP
When \fI\-\-tp=\fR is given then the same number of elements should be
given to the \fI\-\-state=\fR option. If more than one list element is
given to \fI\-\-tp=\fR and an equal number of elements is _not_ given
to the \fI\-\-state=\fR option, then if only one state is specified
then it is repeated.
.SH EXIT STATUS
The exit status of sg_stpg is 0 when it is successful. Otherwise see
the sg3_utils(8) man page.
.SH AUTHORS
Written by Douglas Gilbert.
.SH "REPORTING BUGS"
Report bugs to <dgilbert at interlog dot com>.
.SH COPYRIGHT
Copyright \(co 2007\-2014 Hannes Reinecke, Christophe Varoqui and D Gilbert
.br
This software is distributed under a BSD\-2\-Clause license. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
.SH "SEE ALSO"
.B sg_inq, sg_rtpg (sg3_utils)
